.mesh-loader {
    width: 100%;
    height: 100%;
    overflow: hidden;
}

.mesh-loader .circle {
    position: absolute;
    width: 25px;
    height: 25px;
    margin: -12.5px;
    background: #03a9f4;
    border-radius: 50%;
    animation: mesh 3s ease-in-out infinite;
    animation: mesh 3s ease-in-out infinite -1.5s;
}

.mesh-loader > div .circle:last-child {
    animation-delay: 0s;
}

.mesh-loader > div {
    position: absolute;
    top: 50%;
    left: 50%;
}

.mesh-loader > div:last-child {
    transform: rotate(90deg);
}

@keyframes mesh {
    0% {
        transform: rotate(0);
        transform-origin: 50% -100%;
    }

    50% {
        transform: rotate(360deg);
        transform-origin: 50% -100%;
    }

    50.00001% {
        transform: rotate(0deg);
        transform-origin: 50% 200%;
    }

    100% {
        transform: rotate(360deg);
        transform-origin: 50% 200%;
    }
}

@keyframes mesh {
    0% {
        transform: rotate(0);
        transform-origin: 50% -100%;
    }

    50% {
        transform: rotate(360deg);
        transform-origin: 50% -100%;
    }

    50.00001% {
        transform: rotate(0deg);
        transform-origin: 50% 200%;
    }

    100% {
        transform: rotate(360deg);
        transform-origin: 50% 200%;
    }
}
